import { webSQLVue } from 'nf-web-storage'
// 获取数据库连接信息
// eslint-disable-next-line import/no-absolute-path
import db from '/config/websql.plat.config.json'

// 引入数据库数据

/**
 * 打开数据库，建立表，对表建立实例。
 */
export default webSQLVue.createHelp({
  dbFlag: '==db-plat',
  dbConfig: db,
  /* { // 连接数据库
    dbName: 'vite2-blog',
    ver: 1.0,
    remarks: '测试用的博客数据库',
    size: 2
  },
  */
  tables: { // 数据库里的表
    nf_role: { // 表名，对象属性，建立表的依据
      id: 0,
      kind: 1,
      area: 1000,
      text: ''
    },
    // 表
    manage_table: {
      tableId: '', // 表, int
      tableName: '', // 表名, varchar
      content: '' // 表说明, varchar
    },
    // 字段
    manage_table_columns: {
      columnId: '', // 字段标识, int
      tableId: '', // 表ID, int
      columnKind: '', // 字段类型, int
      colName: '', // 字段名称, varchar
      cnName: '', // 对外名称, varchar
      colType: '', // 字段类型, varchar
      colSize: '', // 字段大小, int
      defaultValue: '', // 默认值, varchar
      canNull: '' // 允许空, int
    },
    // 模块
    manage_module: {
      moduleId: '', // 模块ID, int
      parentId: '', // 父级ID, int
      parentIdAll: '', // 父级ID集合, varchar
      moduleLevel: '', // 模块层级, tinyint
      powerMark: '', // 权限标识, varchar
      title: '', // 模块名称, varchar
      icon: '', // 图标, varchar
      componentKind: '', // 组件字典名称, varchar
      routerName: '', // 路由名称, varchar
      routerParam: '', // 路由参数, varchar
      isLeaf: '', // 是否叶节点, bit
      isHidden: '', // 是否隐藏, tinyint
      isLock: '' // 是否锁定, bit
    },
    // 模块的列表
    manage_list: {
      moduleId: '', // 列表ID, int
      idName: '', // 主键字段名, varhcar
      foreignIdName: '', // 外键字段名, varhcar
      height: '', // 高度, int
      colOrder: '', // 显示字段, 数组
      stripe: '', // 斑马纹, bit
      border: '', // 纵向边框, bit
      fit: '', // 是否自撑开, bit
      highlightCurrentRow: '', // 要高亮当前行, bit
      currentRowKey: '', // 当前行的 key, varhcar
      itemMeta: '' // 子组件属性, 对象
    },
    manage_list_button: {
      buttonId: '', // 按钮ID, int
      moduleId: '', // 所在模块, int
      btnTitle: '', // 按钮名称, varchar
      dialogTitle: '', // 弹窗名称, varchar
      width: '', // 宽度, varchar
      controlKey: '', // 组件名称, varchar
      formMetaId: '', // 表单ID, varchar
      optionKind: '', // 按钮类型, int
      hotkey: '', // 快捷键, varchar
      isNeedSelect: '', // 是否需要选择记录, bit
      disOrder: '' // 排序, int
    },
    // 模块的列表的分页
    manage_list_pagination: {
      paginationId: '', // 分页ID, int
      showCols: '', // 显示字段, 数组
      query: '', // 查询条件, 对象
      pageSize: '', // 一页记录数, int
      pageTotal: '', // 总记录数, int
      pageIndex: '', // 第几页, int
      OrderColumns: '', // 排序字段, 对象
      fixedQuery: '', // 固定查询条件, 对象
      fristQuery: '' // 首次查询条件, 对象
    },
    manage_list_find: {
      moduleId: '', // 查询ID, int
      quickFind: '', // 快捷查询, 数组
      allFind: '', // 全部查询, 数组
      labelWidth: '', // label宽度, int
      finditemWidth: '', // 查询项宽度, int
      customer: '', // 自定义查询, 对象
      customerDefault: '', // 默认查询方案, int
      findKind: '', // 查询方式, 对象
      itemMeta: '' // 子组件属性, 对象
    },
    // 表单
    manage_form: {
      formId: '', // 表单ID, int
      moduleId: '', // 模块ID, int
      formColCount: '', // 列数, int
      colOrder: '', // 字段ID集合, 数组
      formColShow: '', // 组件联动, 对象
      ruleMeta: '', // 验证规则, 对象
      itemMeta: '' // 子组件属性, 对象
    }
  },
  isDeleteOldTable: false, // 是否删除之前的表
  // 可以给全局状态设置初始状态，同步数据可以直接在上面设置，如果是异步数据，可以在这里设置。
  init (help) {
    // 可以做一些事情，比如添加初始数据
    const data = { // 对象属性，建立表的依据
      kind: 1,
      area: 1000,
      text: '测试'
    }

    for (let i = 0; i < 5; i++) {
      // help.insert('nf_role', data)
    }
  }
})
